package com.example;


import com.example.service.UserService;
import com.example.service.UserServiceImpl;

public class Main {
    /**
     * Bean对象的生命周期：
     * UserService.class -> 无参构造 -> 普通对象 -> 依赖注入 -> 初始化（afterPropertiesSet）-> 初始化后BeanProcessor（Aop操作）->动态代理->放入Map<BeanName, Bean对象>
     *
     * Bean的实例化：先构造newInstance出来
     * Bean的初始化：再进行初始化， 主要就是执行一个InitializingBean 接口中afterPropertiesSet方法
     * @param args
     */
    public static void main(String[] args) {
        MyApplicationContext myApplicationContext = new MyApplicationContext(ApplyConfig.class);

        UserService bean = (UserService) myApplicationContext.getBean("userService");

//        System.out.println((UserService)bean);

//        System.out.println(bean);
//
        bean.test();
    }
}